/*
  处理异步
    1. 事件
    2. 回调函数
      setTimeout(() => {
        // xxxx
      }, 1000)
    3. promise
    4. generator函数 es6
    5. async await函数 es8，基于promise
*/

// 创建promise
// const done = true;
// const p1 = new Promise((resolve, reject) => {
//   if (done) {
//     setTimeout(() => {
//       resolve(111);
//     }, 1000);
//   } else {
//     reject(2);
//   }
// });
// 消费promise
// p1.then((res) => {
//   console.log(res);
// }).catch((err) => {
//   console.log(err);
// });

const fs = require("fs");

const fn = () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve(123);
    }, 1000);
  });
};

const read = () => {
  return new Promise((resolve, reject) => {
    fs.readFile("./babel.config.js", "utf-8", (err, data) => {
      resolve(data);
    });
  });
};

// fn().then((res) => {
//   console.log(res);
// });

const fn2 = async () => {
  const res = await fn();
  console.log(res);
  const res2 = await read();
  console.log(res2);
  console.log(1111111);
};
fn2();
